#endif
#include <asm-xen/evtchn.h>
-#define xxprint(msg) HYPERVISOR_console_io(CONSOLEIO_write, strlen(msg), msg)
-
/*
* Some notes on x86 processor bugs affecting SMP operation:
*
*/
cpu_clear(smp_processor_id(), cpu_online_map);
local_irq_disable();
-#if 1
- xxprint("stop_this_cpu disable_local_APIC\n");
-#else
+#if 0
disable_local_APIC();
#endif
if (cpu_data[smp_processor_id()].hlt_works_ok)
smp_call_function(stop_this_cpu, NULL, 1, 0);
local_irq_disable();
-#if 1
- xxprint("smp_send_stop disable_local_APIC\n");
-#else
+#if 0
disable_local_APIC();
#endif
local_irq_enable();
#ifdef CONFIG_XEN
#include <asm-xen/evtchn.h>
-#define xxprint(msg) HYPERVISOR_console_io(CONSOLEIO_write, strlen(msg), msg)
-
#else
/*
* Smarter SMP flushing macros.
local_irq_disable();
#ifndef CONFIG_XEN
disable_local_APIC();
-#else
- xxprint("stop_this_cpu disable_local_APIC\n");
#endif
local_irq_enable();
}
spin_unlock(&call_lock);
local_irq_disable();
-#ifdef CONFIG_XEN
- xxprint("stop_this_cpu disable_local_APIC\n");
-#else
+#ifndef CONFIG_XEN
disable_local_APIC();
#endif
local_irq_enable();
static void kcons_write(
struct console *c, const char *s, unsigned int count)
{
- int i;
+ int i = 0;
unsigned long flags;
spin_lock_irqsave(&xencons_lock, flags);
-
- for (i = 0; i < count; i++) {
- if ((wp - wc) >= (wbuf_size - 1))
- break;
- if ((wbuf[WBUF_MASK(wp++)] = s[i]) == '\n')
- wbuf[WBUF_MASK(wp++)] = '\r';
- }
- __xencons_tx_flush();
+ while (i < count) {
+ for (; i < count; i++) {
+ if ((wp - wc) >= (wbuf_size - 1))
+ break;
+ if ((wbuf[WBUF_MASK(wp++)] = s[i]) == '\n')
+ wbuf[WBUF_MASK(wp++)] = '\r';
+ }
+
+ __xencons_tx_flush();
+ }
spin_unlock_irqrestore(&xencons_lock, flags);
}
#include <asm/hypervisor.h>
#include <asm-xen/evtchn.h>
+#include <asm-xen/xencons.h>
#include <linux/wait.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
xen_start_info->console_evtchn,
handle_input, 0, "xencons", NULL);
if (err <= 0) {
- xprintk("XEN console request irq failed %i\n", err);
+ printk(KERN_ERR "XEN console request irq failed %i\n", err);
return err;
}